package com.monkeyboy.mytest.convert;

import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.amqp.support.converter.MessageConversionException;
import org.springframework.amqp.support.converter.MessageConverter;

/**
 * 作用： rabbitMq的消息转换器
 * 
 * @author Gavin
 * @time:2019年1月17日
 */
public class TextMessageConverter implements MessageConverter {
	/**
	 * 把一个message对象转换为一个java对象
	 */
	@Override
	public Object fromMessage(Message arg0) throws MessageConversionException {

		String contentType = arg0.getMessageProperties().getContentType();
		System.err.println(contentType);
		if (null != contentType && "application/octet-stream".equals(contentType)) {// 如果是字节数组就转换为字符串
			return new String(arg0.getBody());
		} else if (null != contentType && "text/plain".equals(contentType)) {
			return new String(arg0.getBody());
		}
		return arg0.getBody();
	}

	/**
	 * 把一个java对象转换为一个message对象
	 */
	@Override
	public Message toMessage(Object arg0, MessageProperties arg1) throws MessageConversionException {
		System.err.println(arg0);
		System.err.println(arg1);
		return new Message(arg0.toString().getBytes(), arg1);
	}

}
